#ifndef __LIB_KERNEL_STRING_H
#define __LIB_KERNEL_STRING_H

#include "../stdint.h"
#include "print.h"
#include "../../kernel/debug.h"

//Set size bytes to value from specific address 
void memset(void * dst_, uint8_t value, uint32_t size);
//Copy size bytes from source to destination.
void memcpy(void * dst_, const void * src_, uint32_t size);
//Compare two strings a_ and b_ by dictionary order.Equal returns 0.
//a_ greater than b_ returns 1.Otherwise return -1.
int memcmp(const void* a_, const void* b_, uint32_t size);
//Copy source string to destination string.
char * strcpy(char * dst_, const char * src_);
//Length of string.
uint32_t strlen(const char * str);
//Compare two string;
uint8_t strcmp(const char * a_, const char * b_);
//Find a character firstly appeared in string.
char * strchr(const char * str, const uint8_t chr);
//Find a charactor lastly appeared in string.
char * strrchr(const char * str, const uint8_t chr);
//Concatnate two string to dst_.
char * strcat(char * dst_, const char * src_);
//Find the appearance times of ch in str.
uint32_t strchrs(const char * str, const uint8_t ch);

#endif


